#!/bin/bash
# 练习 awk的内置变量FS,OFS,RS,ORS和文本匹配
green(){
    echo -e "\e[032m"
}
normal(){
    echo -e "\e[0m"
}
file=regex_test.txt
clear
green
echo "测试文件内容如下:"
cat $file
echo "FS是设置字段分隔符,可以使用-v FS=''或者-F\"[,: -]\"等方法设置"
echo "下面使用','来作为列分隔符,只有第二行被分割了"
normal
awk -v FS="," '{print "1. "$1, "2. "$2}' $file
green
echo "OFS是设置输出字段的分隔符,使用-v OFS=\":\"来设置"
echo "下面使用';'作为输出列的分隔符"
normal
awk   -v OFS=";" '{print "1. "$1, "2. "$2}' $file

green
echo "RS是设置输入内容的行分隔符,使用-v RS=\",\"来设置"
echo "使用,号分割行,输出行号,原来三行变成两行"
normal
awk  -v RS="," '{print NR}' $file

green
echo "ORS是设置输出内容的行分隔符,使用-v RS=\";\"来设置"
echo "使用OFS把所有行合并成一行,使用;分割"
normal
awk  -v ORS=";" '{print $0}' $file

green 
echo "使用/xxx/来匹配文本"
echo "输出有hello的行"
normal
awk '/hello/{print $0}' $file
green
echo "输出没有hello的行"
normal
awk '!/hello/{print $0}' $file
green
echo "也可以使用~//来匹配指定的列,使用!~//反向匹配"
echo "下面输出第二列匹配the或者man的行"
normal
awk '$2~/the/||$2~/man/' $file
